do my homework IV me plz... need to make super fast!!! you'll get what i'm trying to do [fuzzing] but i need another approach to it... which you girls must know!!!!

Code:
/***************************** fuzz *******************************************/
  
  void OUTPUT :: fuzz (unsigned int xl, unsigned int yl, unsigned int xh, unsigned it yh)
  {
    unsigned char * old_ptr = h.vb.outdbl.gfx_ptr_;

    //  copy the current background to the out double buffer
    h.vb.bg_to_out_dbl (xl, yl, xh, yh);

    //  for each pixel in the viewframe
    for (unsigned int u0 = yl; u0 < yh; u0++)
      for (unsigned int u1 = xl; u1 < xh; u1++)
      {
        unsigned int r = 0, g = 0, b = 0;
        unsigned char radius_print [9];
        unsigned int avg_div;

        //  grab pixels from out_dbl_
        h.vb.outdbl.gfx_ptr_ = h.vb.outdbl.out_dbl_;

        //  get a new grid for each pixel
        avg_div = 0;
        while (avg_div < 5)             //  get at least a 5-pixel average
        {
          avg_div = 0;
          for (unsigned int u0 = 0; u0 < 9; u0++)
          {
            radius_print [u0] = rand () % 2;
            if (radius_print [u0]) avg_div++;
          }
        }
        //  ensure at least the first pixel is on so that it get's counted for
        if (radius_print [4] == 0)
        {
          radius_print [4] = 1;
          avg_div++;
        }

        //  add 'em up
        for (unsigned int u2 = 0; u2 < 3; u2++)
          for (unsigned int u3 = 0; u3 < 3; u3++)
            if (radius_print [u2 * 3 + u3])
            {
              unsigned int x,y;
              unsigned int pix_add;
              x = (u1 + h.vb.vars.x_size - 1 + u3) % h.vb.vars.x_size;
              y = (u0 + h.vb.vars.y_size - 1 + u2) % h.vb.vars.y_size;

              pix_add = h.vb.g_pixel (x, y);
              
              //  over line flow, reword...
              r += (pix_add >> (h.vb.vars.g_bpp + h.vb.vars.b_bpp)) & h.vb.vars.r_max;
              g += (pix_add >>                    h.vb.vars.b_bpp ) & h.vb.vars.g_max;
              b += (pix_add >>                    0               ) & h.vb.vars.b_max;
            }

        r /= avg_div;
        g /= avg_div;
        b /= avg_div;

        //  place pixels to gfx_bg__
        h.vb.outdbl.gfx_ptr_ = h.vb.outdbl.gfx_bg__;

        P_PIXEL (u1, u0, r,g,b);
      }

    h.vb.update (xl, yl, xh, yh);
  }
much thanks... i've profiled it many a time... and now that i've got my dirty rectangles updating routine... [doesn't that sound nasty?] i still need it harder better faster stronger!!!

=-{da, with wings}-=

[edited]